/**
 * 题目状态工具
 */

/**
 * 获取提交状态对应的标签类型
 * @param {string} status - 状态值
 * @returns {string}
 */
export function getStatusType(status) {
  const map = {
    AC: 'success',
    WA: 'danger',
    TLE: 'warning',
    MLE: 'warning',
    RE: 'danger',
    CE: 'danger',
    SE: 'danger',
    ERROR: 'danger',
    PENDING: 'info',
    RUNNING: 'warning',
    ACCEPTED: 'success',
    WRONG_ANSWER: 'danger',
    TIME_LIMIT_EXCEEDED: 'warning',
    MEMORY_LIMIT_EXCEEDED: 'warning',
    RUNTIME_ERROR: 'danger',
    COMPILE_ERROR: 'danger'
  }
  return map[status] || 'info'
}

/**
 * 获取提交状态对应的文本
 * @param {string} status - 状态值
 * @returns {string}
 */
export function getStatusText(status) {
  const map = {
    AC: '通过',
    WA: '答案错误',
    TLE: '超时',
    MLE: '内存超限',
    RE: '运行错误',
    CE: '编译错误',
    SE: '系统错误',
    ERROR: '错误',
    PENDING: '等待中',
    RUNNING: '运行中',
    ACCEPTED: '通过',
    WRONG_ANSWER: '答案错误',
    TIME_LIMIT_EXCEEDED: '超时',
    MEMORY_LIMIT_EXCEEDED: '内存超限',
    RUNTIME_ERROR: '运行错误',
    COMPILE_ERROR: '编译错误'
  }
  return map[status] || status
}

/**
 * 计算通过率
 * @param {number} accepted - 通过数
 * @param {number} total - 总数
 * @returns {string}
 */
export function calculateAcceptanceRate(accepted, total) {
  if (!total || total === 0) return '0%'
  const rate = ((accepted / total) * 100).toFixed(1)
  return `${rate}%`
}
